function TCPCreateConnectionForStream (var connection: TCPConnectionPtr; strm: streamPtr): OSErr;
function TCPFlush (connection: TCPConnectionptr): OSErr;
function TCPClose (connection: TCPConnectionPtr; userptr: OSErrPtr): OSErr;
function TCPAbort (connection: TCPConnectionPtr): OSErr;
function TCPRelease (var connection: TCPConnectionPtr): OSErr;
procedure TCPRawState (connection: TCPConnectionPtr; var state: integer; var localhost: longInt; var localport: integer; var remotehost: longInt; var remoteport: integer; var available: longInt);
function TCPState (connection: TCPConnectionPtr): TCPStateType;
function TCPCharsAvailable (connection: TCPConnectionPtr): longInt;
function TCPLocalPort (connection: TCPConnectionPtr): integer;
function TCPRawReceiveChars (connection: TCPConnectionPtr; returnPtr: ptr; readCount: integer): OSErr;
{ Use EITHER RawReceive, or the other Receives. Don't combine them for one stream! }
function TCPReceiveChars (connection: TCPConnectionPtr; returnPtr: ptr; readCount: integer): OSErr;
function TCPReadByte (connection: TCPConnectionPtr; timeout: longInt; var b: SignedByte): OSErr;
function TCPReceiveUpTo (connection: TCPConnectionPtr; termChar: signedByte;{}
charTimeOut: longInt; readPtr: ptr; readSize: longInt; var readPos: longInt;{}
function TCPAbort (connection: TCPConnectionPtr): OSErr;
var
oe: OSErr;
cb: TCPControlBlock;
begin
oe := ValidateConnection(connection);
if oe = noErr then begin
ZeroCB(cb, connection^.stream, TCPcsAbort);
oe := PBControlSync(cb);
end;
TCPAbort := oe;
end;
{ Release the TCP stream, including the buffer.}
function TCPRelease (var connection: TCPConnectionPtr): OSErr;
var
oe: OSErr;
cb: TCPControlBlock;
begin
oe := ValidateConnection(connection);
if oe = noErr then begin
ZeroCB(cb, connection^.stream, TCPcsRelease);
oe := PBControlSync(cb);
DestroyConnection(connection);
end;
TCPRelease := oe;
end;
{ TCPRawState(connectionID) -- Return the state of the TCP connection.}
procedure TCPRawState (connection: TCPConnectionPtr; var state: integer; var localhost: longInt; var localport: integer; var remotehost: longInt; var remoteport: integer; var available: longInt);
var
cb: TCPControlBlock;
oe: OSErr;
begin
oe := ValidateConnection(connection);
localhost := 0;
localport := 0;
remotehost := 0;
remoteport := 0;
available := 0;
if oe <> noErr then begin
state := 99; { Error -> Closed }
end
else begin
ZeroCB(cb, connection^.stream, TCPcsStatus);
if PBControlSync(cb) <> noErr then begin
state := 99; { Closed }
end
else begin
state := cb.status.connectionState;
connection^.laststate := state;
localhost := cb.status.localhost;
localport := cb.status.localport;
remotehost := cb.status.remotehost;
remoteport := cb.status.remoteport;
available := cb.status.amtUnreadData + connection^.incomingSize;
end;
end;
end;
{ Return the state of the TCP connection.}
function TCPState (connection: TCPConnectionPtr): TCPStateType;